Trees | Indices | Toggle frames |
---|
event.EventDispatcher --+ | Window
Platform-independent application window.
A window is a "heavyweight" object occupying operating system resources. The "client" or "content" area of a window is filled entirely with an OpenGL viewport. Applications have no access to operating system widgets or controls; all rendering must be done via OpenGL.
Windows may appear as floating regions or can be set to fill an entire screen (fullscreen). When floating, windows may appear borderless or decorated with a platform-specific frame (including, for example, the title bar, minimize and close buttons, resize handles, and so on).
While it is possible to set the location of a window, it is recommended that applications allow the platform to place it according to local conventions. This will ensure it is not obscured by other windows, and appears on an appropriate screen for the user.
To render into a window, you must first call switch_to, to make it the current OpenGL context. If you use only one window in the application, there is no need to do this.
Deprecated: Windows are closed immediately by the default on_close handler when pyglet.app.event_loop is being used.
on_activate()
The window was activated.
|
|
on_close()
The user attempted to close the window.
|
|
on_context_lost()
The window's GL context was lost.
|
|
on_context_state_lost()
The state of the window's GL context was lost.
|
|
on_deactivate()
The window was deactivated.
|
|
on_draw()
The window contents must be redrawn.
|
|
on_expose()
A portion of the window needs to be redrawn.
|
|
on_hide()
The window was hidden.
|
|
on_key_press(symbol,
modifiers)
A key on the keyboard was pressed (and held down).
|
|
on_key_release(symbol,
modifiers)
A key on the keyboard was released.
|
|
on_mouse_drag(x,
y,
dx,
dy,
buttons,
modifiers)
The mouse was moved with one or more mouse buttons pressed.
|
|
on_mouse_enter(x,
y)
The mouse was moved into the window.
|
|
on_mouse_leave(x,
y)
The mouse was moved outside of the window.
|
|
on_mouse_motion(x,
y,
dx,
dy)
The mouse was moved with no buttons held down.
|
|
on_mouse_press(x,
y,
button,
modifiers)
A mouse button was pressed (and held down).
|
|
on_mouse_release(x,
y,
button,
modifiers)
A mouse button was released.
|
|
on_mouse_scroll(x,
y,
scroll_x,
scroll_y)
The mouse wheel was scrolled.
|
|
on_move(x,
y)
The window was moved.
|
|
on_resize(width,
height)
The window was resized.
|
|
on_show()
The window was shown.
|
|
on_text(text)
The user input some text.
|
|
on_text_motion(motion)
The user moved the text input cursor.
|
|
on_text_motion_select(motion)
The user moved the text input cursor while extending the
selection.
|
__init__(self,
width=None,
height=None,
caption=None,
resizable=False,
style=None,
fullscreen=False,
visible=True,
vsync=True,
display=None,
screen=None,
config=None,
context=None)
Create a window.
|
|
activate(self)
Attempt to restore keyboard focus to the window.
|
|
clear(self)
Clear the window.
|
|
close(self)
Close the window.
|
|
dispatch_event(self,
*args)
Dispatch a single event to the attached handlers.
|
|
dispatch_events(self)
Poll the operating system event queue for new events and call
attached event handlers.
|
|
draw_mouse_cursor(self)
Draw the custom mouse cursor.
|
|
event(self,
*args)
Function decorator for an event handler.
(Inherited from pyglet.event.EventDispatcher)
|
|
flip(self)
Swap the OpenGL front and back buffers.
|
|
(int, int) |
get_location(self)
Return the current position of the window.
|
(int, int) |
get_size(self)
Return the current size of the window.
|
MouseCursor |
get_system_mouse_cursor(self,
name)
Obtain a system mouse cursor.
|
maximize(self)
Maximize the window.
|
|
minimize(self)
Minimize the window.
|
|
pop_handlers(self)
Pop the top level of event handlers off the stack.
(Inherited from pyglet.event.EventDispatcher)
|
|
push_handlers(self,
*args,
**kwargs)
Push a level onto the top of the handler stack, then attach zero or
more event handlers.
(Inherited from pyglet.event.EventDispatcher)
|
|
register_event_type(cls,
name)
Register an event type with the dispatcher.
(Inherited from pyglet.event.EventDispatcher)
|
|
remove_handler(self,
name,
handler)
Remove a single event handler.
(Inherited from pyglet.event.EventDispatcher)
|
|
remove_handlers(self,
*args,
**kwargs)
Remove event handlers from the event stack.
(Inherited from pyglet.event.EventDispatcher)
|
|
set_caption(self,
caption)
Set the window's caption.
|
|
set_exclusive_keyboard(self,
exclusive=True)
Prevent the user from switching away from this window using
keyboard accelerators.
|
|
set_exclusive_mouse(self,
exclusive=True)
Hide the mouse cursor and direct all mouse events to this
window.
|
|
set_fullscreen(self,
fullscreen=True,
screen=None)
Toggle to or from fullscreen.
|
|
set_handler(self,
name,
handler)
Attach a single event handler.
(Inherited from pyglet.event.EventDispatcher)
|
|
set_handlers(self,
*args,
**kwargs)
Attach one or more event handlers to the top level of the handler
stack.
(Inherited from pyglet.event.EventDispatcher)
|
|
set_icon(self,
*images)
Set the window icon.
|
|
set_location(self,
x,
y)
Set the position of the window.
|
|
set_maximum_size(self,
width,
height)
Set the maximum size of the window.
|
|
set_minimum_size(self,
width,
height)
Set the minimum size of the window.
|
|
set_mouse_cursor(self,
cursor=None)
Change the appearance of the mouse cursor.
|
|
set_mouse_platform_visible(self,
platform_visible=None)
Set the platform-drawn mouse cursor visibility.
|
|
set_mouse_visible(self,
visible=True)
Show or hide the mouse cursor.
|
|
set_size(self,
width,
height)
Resize the window.
|
|
set_visible(self,
visible=True)
Show or hide the window.
|
|
set_vsync(self,
vsync)
Enable or disable vertical sync control.
|
|
switch_to(self)
Make this window the current OpenGL rendering context.
|
str |
caption
The window caption (title).
|
pyglet.gl.Config |
config
A GL config describing the context of this window.
|
pyglet.gl.Context |
context
The OpenGL context attached to this window.
|
Display |
display
The display this window belongs to.
|
bool |
fullscreen
True if the window is currently fullscreen.
|
int |
height
The height of the window, in pixels.
|
bool |
resizable
True if the window is resizable.
|
Screen |
screen
The screen this window is fullscreen in.
|
int |
style
The window style; one of the WINDOW_STYLE_* constants.
|
bool |
visible
True if the window is currently visible.
|
bool |
vsync
True if buffer flips are synchronised to the screen's vertical
retrace.
|
int |
width
The width of the window, in pixels.
|
bool |
has_exit = False
True if the user has attempted to close the window.
|
event_types =
|
|
invalid = True
|
The window was activated.
This event can be triggered by clicking on the title bar, bringing it to the foreground; or by some platform-specific method.
When a window is "active" it has the keyboard focus.
The user attempted to close the window.
This event can be triggered by clicking on the "X" control box in the window title bar, or by some other platform-dependent manner.
The default handler sets has_exit to True. In pyglet 1.1, if pyglet.app.event_loop is being used, close is also called, closing the window immediately.
The window's GL context was lost.
When the context is lost no more GL methods can be called until it is recreated. This is a rare event, triggered perhaps by the user switching to an incompatible video mode. When it occurs, an application will need to reload all objects (display lists, texture objects, shaders) as well as restore the GL state.
The state of the window's GL context was lost.
pyglet may sometimes need to recreate the window's GL context if the window is moved to another video device, or between fullscreen or windowed mode. In this case it will try to share the objects (display lists, texture objects, shaders) between the old and new contexts. If this is possible, only the current state of the GL context is lost, and the application should simply restore state.
The window was deactivated.
This event can be triggered by clicking on another application window. When a window is deactivated it no longer has the keyboard focus.
The window contents must be redrawn.
The EventLoop will dispatch this event when the window should be redrawn. This will happen during idle time after any window events and after any scheduled functions were called.
The window will already have the GL context, so there is no need to call switch_to. The window's flip method will be called after this event, so your event handler should not.
You should make no assumptions about the window contents when this event is triggered; a resize or expose event may have invalidated the framebuffer since the last time it was drawn.
Since: pyglet 1.1
A portion of the window needs to be redrawn.
This event is triggered when the window first appears, and any time the contents of the window is invalidated due to another window obscuring it.
There is no way to determine which portion of the window needs redrawing. Note that the use of this method is becoming increasingly uncommon, as newer window managers composite windows automatically and keep a backing store of the window contents.
The window was hidden.
This event is triggered when a window is minimised or (on Mac OS X) hidden by the user.
A key on the keyboard was pressed (and held down).
In pyglet 1.0 the default handler sets has_exit to True if the ESC key is pressed.
In pyglet 1.1 the default handler dispatches the on_close event if the ESC key is pressed.
The mouse was moved with one or more mouse buttons pressed.
This event will continue to be fired even if the mouse leaves the window, so long as the drag buttons are continuously held down.
The mouse was moved into the window.
This event will not be trigged if the mouse is currently being dragged.
The mouse was moved outside of the window.
This event will not be trigged if the mouse is currently being dragged. Note that the coordinates of the mouse pointer will be outside of the window rectangle.
The mouse wheel was scrolled.
Note that most mice have only a vertical scroll wheel, so
scroll_x
is usually 0. An exception to this is the Apple Mighty
Mouse, which has a mouse ball in place of the wheel which allows
both scroll_x
and scroll_y
movement.
The window was resized.
The window will have the GL context when this event is dispatched; there is no need to call switch_to in this handler.
The window was shown.
This event is triggered when a window is restored after being minimised, or after being displayed for the first time.
The user input some text.
Typically this is called after on_key_press and before on_key_release, but may also be called multiple times if the key is held down (key repeating); or called without key presses if another input method was used (e.g., a pen input).
You should always use this method for interpreting text, as the key symbols often have complex mappings to their unicode representation which this event takes care of.
The user moved the text input cursor.
Typically this is called after on_key_press and before on_key_release, but may also be called multiple times if the key is help down (key repeating).
You should always use this method for moving the text input cursor (caret), as different platforms have different default keyboard mappings, and key repeats are handled correctly.
The values that motion
can take are defined in
pyglet.window.key:
The user moved the text input cursor while extending the selection.
Typically this is called after on_key_press and before on_key_release, but may also be called multiple times if the key is help down (key repeating).
You should always use this method for responding to text selection events rather than the raw on_key_press, as different platforms have different default keyboard mappings, and key repeats are handled correctly.
The values that motion
can take are defined in pyglet.window.key:
Create a window.
All parameters are optional, and reasonable defaults are assumed where they are not specified.
The display, screen, config and context parameters form a hierarchy of control: there is no need to specify more than one of these. For example, if you specify screen the display will be inferred, and a default config and context will be created.
config is a special case; it can be a template created by the user specifying the attributes desired, or it can be a complete config as returned from Screen.get_matching_configs or similar.
The context will be active as soon as the window is created, as if switch_to was just called.
Attempt to restore keyboard focus to the window.
Depending on the window manager or operating system, this may not be successful. For example, on Windows XP an application is not allowed to "steal" focus from another application. Instead, the window's taskbar icon will flash, indicating it requires attention.
Clear the window.
This is a convenience method for clearing the color and depth buffer. The window must be the active context (see switch_to).
Close the window.
After closing the window, the GL context will be invalid. The window instance cannot be reused once closed (see also set_visible).
The pyglet.app.EventLoop.on_window_close event is dispatched on pyglet.app.event_loop when this method is called.
Dispatch a single event to the attached handlers.
The event is propagated to all handlers from from the top of the stack until one returns EVENT_HANDLED. This method should be used only by EventDispatcher implementors; applications should call the dispatch_events method.
Poll the operating system event queue for new events and call attached event handlers.
This method is provided for legacy applications targeting pyglet 1.0, and advanced applications that must integrate their event loop into another framework.
Typical applications should use pyglet.app.run.
Draw the custom mouse cursor.
If the current mouse cursor has drawable set, this method is called before the buffers are flipped to render it.
This method always leaves the GL_MODELVIEW matrix as current, regardless of what it was set to previously. No other GL state is affected.
There is little need to override this method; instead, subclass MouseCursor and provide your own draw method.
Swap the OpenGL front and back buffers.
Call this method on a double-buffered window to update the visible display with the back buffer. The contents of the back buffer is undefined after this operation.
Windows are double-buffered by default. This method is called automatically by EventLoop after the on_draw event.
Return the current size of the window.
The window size does not include the border or title bar.
Obtain a system mouse cursor.
Use set_mouse_cursor to make the cursor returned by this method active. The names accepted by this method are the CURSOR_* constants defined on this class.
Maximize the window.
The behaviour of this method is somewhat dependent on the user's display setup. On a multi-monitor system, the window may maximize to either a single screen or the entire virtual desktop.
Set the window's caption.
The caption appears in the titlebar of the window, if it has one, and in the taskbar on Windows and many X11 window managers.
Prevent the user from switching away from this window using keyboard accelerators.
When enabled, this feature disables certain operating-system specific key combinations such as Alt+Tab (Command+Tab on OS X). This can be useful in certain kiosk applications, it should be avoided in general applications or games.
Hide the mouse cursor and direct all mouse events to this window.
When enabled, this feature prevents the mouse leaving the window. It is useful for certain styles of games that require complete control of the mouse. The position of the mouse as reported in subsequent events is meaningless when exclusive mouse is enabled; you should only use the relative motion parameters dx and dy.
Toggle to or from fullscreen.
After toggling fullscreen, the GL context should have retained its state and objects, however the buffers will need to be cleared and redrawn.
Set the window icon.
If multiple images are provided, one with an appropriate size will be selected (if the correct size is not provided, the image will be scaled).
Useful sizes to provide are 16x16, 32x32, 64x64 (Mac only) and 128x128 (Mac only).
Set the maximum size of the window.
Once set, the user will not be able to resize the window larger than the given dimensions. There is no way to remove the maximum size constraint on a window (but you could set it to a large value).
The behaviour is undefined if the maximum size is set smaller than the current size of the window.
The window size does not include the border or title bar.
Set the minimum size of the window.
Once set, the user will not be able to resize the window smaller than the given dimensions. There is no way to remove the minimum size constraint on a window (but you could set it to 0,0).
The behaviour is undefined if the minimum size is set larger than the current size of the window.
The window size does not include the border or title bar.
Change the appearance of the mouse cursor.
The appearance of the mouse cursor is only changed while it is within this window.
Set the platform-drawn mouse cursor visibility. This is called automatically after changing the mouse cursor or exclusive mode.
Applications should not normally need to call this method, see set_mouse_visible instead.
Show or hide the mouse cursor.
The mouse cursor will only be hidden while it is positioned within this window. Mouse events will still be processed as usual.
Resize the window.
The behaviour is undefined if the window is not resizable, or if it is currently fullscreen.
The window size does not include the border or title bar.
Enable or disable vertical sync control.
When enabled, this option ensures flips from the back to the front buffer are performed only during the vertical retrace period of the primary display. This can prevent "tearing" or flickering when the buffer is updated in the middle of a video scan.
Note that LCD monitors have an analogous time in which they are not reading from the video buffer; while it does not correspond to a vertical retrace it has the same effect.
With multi-monitor systems the secondary monitor cannot be synchronised to, so tearing and flicker cannot be avoided when the window is positioned outside of the primary display. In this case it may be advisable to forcibly reduce the framerate (for example, using pyglet.clock.set_fps_limit).
Make this window the current OpenGL rendering context.
Only one OpenGL context can be active at a time. This method sets the current window's context to be current. You should use this method in preference to pyglet.gl.Context.set_current, as it may perform additional initialisation functions.
|
Trees | Indices | Toggle frames |
---|
Generated by Epydoc 3.0beta1 on Thu Dec 31 17:58:20 2009 | http://epydoc.sourceforge.net |